[INFO] fetching crate pelite 0.10.0...
[INFO] fixing pelite-0.10.0 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] extracting crate pelite 0.10.0 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate pelite 0.10.0
[INFO] finished tweaking crates.io crate pelite 0.10.0
[INFO] tweaked toml for crates.io crate pelite 0.10.0 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate pelite 0.10.0 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate pelite 0.10.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 8e60af36625d7b28cc2cd5dbb1bbea5fc466af434daba24b50af7d86ad780a62
[INFO] running `Command { std: "docker" "start" "8e60af36625d7b28cc2cd5dbb1bbea5fc466af434daba24b50af7d86ad780a62", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8e60af36625d7b28cc2cd5dbb1bbea5fc466af434daba24b50af7d86ad780a62" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8e60af36625d7b28cc2cd5dbb1bbea5fc466af434daba24b50af7d86ad780a62", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8e60af36625d7b28cc2cd5dbb1bbea5fc466af434daba24b50af7d86ad780a62" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr]    Compiling libc v0.2.88
[INFO] [stderr]    Compiling derive_pod v0.1.2
[INFO] [stderr]    Compiling pelite-macros v0.1.1
[INFO] [stderr]     Checking no-std-compat v0.4.1
[INFO] [stderr]     Checking lde v0.3.0
[INFO] [stderr]     Checking format_xml v0.2.0
[INFO] [stderr]     Checking dataview v1.0.0
[INFO] [stderr]     Checking pelite v0.10.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking rand v0.5.6
[INFO] [stderr]    Migrating src/lib.rs from 2018 edition to 2021
[INFO] [stderr]        Fixed src/util/c_str.rs (1 fix)
[INFO] [stderr]        Fixed src/pattern.rs (5 fixes)
[INFO] [stderr]    Migrating src/bin/pedump.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/tiny.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating examples/version_info.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating examples/tf2/main.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/bin/msrtti.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating examples/csgo/main.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/bin/findsig.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating examples/imphash.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating examples/markovbin.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating examples/apisetschema/main.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/bin/module-def.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/edges.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/patterns.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/bin/strings.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating examples/extract-icons.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating examples/readme.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/demo64.rs from 2018 edition to 2021
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.22s
[INFO] [stderr] crater-edition-check: pelite v0.10.0 (/opt/rustwide/workdir) updating edition from 2018 to 2021
[INFO] [stderr]     Checking pelite v0.10.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: for loop over a `Result`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/pe64/imports.rs:303:12
[INFO] [stdout]     |
[INFO] [stdout] 303 |         for _ in desc.iat() {}
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 303 -         for _ in desc.iat() {}
[INFO] [stdout] 303 +         while let Ok(_) = desc.iat() {}
[INFO] [stdout]     |
[INFO] [stdout] help: consider unwrapping the `Result` with `?` to iterate over its contents
[INFO] [stdout]     |
[INFO] [stdout] 303 |         for _ in desc.iat()? {}
[INFO] [stdout]     |                            +
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 303 -         for _ in desc.iat() {}
[INFO] [stdout] 303 +         if let Ok(_) = desc.iat() {}
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `Result`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/pe64/imports.rs:304:12
[INFO] [stdout]     |
[INFO] [stdout] 304 |         for _ in desc.int() {}
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 304 -         for _ in desc.int() {}
[INFO] [stdout] 304 +         while let Ok(_) = desc.int() {}
[INFO] [stdout]     |
[INFO] [stdout] help: consider unwrapping the `Result` with `?` to iterate over its contents
[INFO] [stdout]     |
[INFO] [stdout] 304 |         for _ in desc.int()? {}
[INFO] [stdout]     |                            +
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 304 -         for _ in desc.int() {}
[INFO] [stdout] 304 +         if let Ok(_) = desc.int() {}
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `Result`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/pe32/../pe64/imports.rs:303:12
[INFO] [stdout]     |
[INFO] [stdout] 303 |         for _ in desc.iat() {}
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 303 -         for _ in desc.iat() {}
[INFO] [stdout] 303 +         while let Ok(_) = desc.iat() {}
[INFO] [stdout]     |
[INFO] [stdout] help: consider unwrapping the `Result` with `?` to iterate over its contents
[INFO] [stdout]     |
[INFO] [stdout] 303 |         for _ in desc.iat()? {}
[INFO] [stdout]     |                            +
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 303 -         for _ in desc.iat() {}
[INFO] [stdout] 303 +         if let Ok(_) = desc.iat() {}
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `Result`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/pe32/../pe64/imports.rs:304:12
[INFO] [stdout]     |
[INFO] [stdout] 304 |         for _ in desc.int() {}
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 304 -         for _ in desc.int() {}
[INFO] [stdout] 304 +         while let Ok(_) = desc.int() {}
[INFO] [stdout]     |
[INFO] [stdout] help: consider unwrapping the `Result` with `?` to iterate over its contents
[INFO] [stdout]     |
[INFO] [stdout] 304 |         for _ in desc.int()? {}
[INFO] [stdout]     |                            +
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 304 -         for _ in desc.int() {}
[INFO] [stdout] 304 +         if let Ok(_) = desc.int() {}
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `network_name`, `class_id`, and `size_of` are never read
[INFO] [stdout]   --> examples/tf2/classes.rs:36:6
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct Class<'a> {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 36 |     pub network_name: &'a str,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 37 |     pub class_id: i32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 38 |     pub size_of: u32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Class` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `class_id` is never read
[INFO] [stdout]   --> examples/csgo/classes.rs:51:6
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct Class<'a> {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub class_id: i32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Class` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.44s
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr]     Checking pelite v0.10.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr] error: errors present after applying fixes to crate `pelite`
[INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition
[INFO] [stdout]   --> src/stringify.rs:17:26
[INFO] [stdout]    |
[INFO] [stdout] 17 |         $($name:ident => $desc:expr,)*
[INFO] [stdout]    |                                ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/macro-fragment-specifiers.html>
[INFO] [stdout]    = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier
[INFO] [stdout]    |
[INFO] [stdout] 17 |         $($name:ident => $desc:expr_2021,)*
[INFO] [stdout]    |                                    +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  --> src/pe64/pe.rs
[INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition
[INFO] [stdout]   --> src/stringify.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 |         $($index:expr, $name:expr => $desc:expr,)*
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/macro-fragment-specifiers.html>
[INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier
[INFO] [stdout]    |
[INFO] [stdout] 54 |         $($index:expr_2021, $name:expr => $desc:expr,)*
[INFO] [stdout]    |                      +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]   = cause: error: mismatched closing delimiter: `}`
[INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition
[INFO] [stdout]   --> src/stringify.rs:54:24
[INFO] [stdout]    |
[INFO] [stdout] 54 |         $($index:expr, $name:expr => $desc:expr,)*
[INFO] [stdout]    |                              ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/macro-fragment-specifiers.html>
[INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier
[INFO] [stdout]    |
[INFO] [stdout] 54 |         $($index:expr, $name:expr_2021 => $desc:expr,)*
[INFO] [stdout]    |                                  +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               --> src/pe64/pe.rs:610:4
[INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition
[INFO] [stdout]   --> src/stringify.rs:54:38
[INFO] [stdout]    |
[INFO] [stdout] 54 |         $($index:expr, $name:expr => $desc:expr,)*
[INFO] [stdout]    |                                            ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/macro-fragment-specifiers.html>
[INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier
[INFO] [stdout]    |
[INFO] [stdout] 54 |         $($index:expr, $name:expr => $desc:expr_2021,)*
[INFO] [stdout]    |                                                +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |
[INFO] [stdout] warning[E0133]: call to unsafe function `std::intrinsics::transmute` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/c_str.rs:49:3
[INFO] [stdout]    |
[INFO] [stdout] 49 |         mem::transmute(bytes)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/util/c_str.rs:48:2
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub unsafe fn from_bytes_unchecked(bytes: &[u8]) -> &CStr {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: `--force-warn unsafe-op-in-unsafe-fn` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            610 |     &*(image.as_ptr() as *const IMAGE_DOS_H}EADER)
[INFO] [stdout] warning[E0133]: call to unsafe function `std::intrinsics::transmute` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/wide_str.rs:43:3
[INFO] [stdout]    |
[INFO] [stdout] 43 |         mem::transmute(words)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/util/wide_str.rs:42:2
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub unsafe fn from_words_unchecked(words: &[u16]) -> &WideStr {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |       ^ unclosed delimiter                 ^ mismatched closing delimiter
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/wide_str.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let len = *p as usize + 1;
[INFO] [stdout]    |                   ^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/util/wide_str.rs:54:2
[INFO] [stdout]    |
[INFO] [stdout] 54 |     unsafe fn from_bytes(bytes: &[u8]) -> Option<&WideStr> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `util::wide_str::WideStr::from_words_unchecked` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/wide_str.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 |         Some(WideStr::from_words_unchecked(slice::from_raw_parts(p, len)))
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/wide_str.rs:60:38
[INFO] [stdout]    |
[INFO] [stdout] 60 |         Some(WideStr::from_words_unchecked(slice::from_raw_parts(p, len)))
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            error: unexpected closing delimiter: `}`
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/util/mod.rs:138:4
[INFO] [stdout]     |
[INFO] [stdout] 138 |     f(std::slice::from_raw_parts_mut(vec.as_mut_ptr().offset(vec_len as isize), additional));
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/util/mod.rs:133:1
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub(crate) unsafe fn extend_in_place<'a, T, F: FnMut(&'a mut [T])>(vec: &'a mut Vec<T>, additional: usize, mut f: F) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               --> src/pe64/pe.rs:611:2
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::offset` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/util/mod.rs:138:35
[INFO] [stdout]     |
[INFO] [stdout] 138 |     f(std::slice::from_raw_parts_mut(vec.as_mut_ptr().offset(vec_len as isize), additional));
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |
[INFO] [stdout] warning[E0133]: call to unsafe function `std::vec::Vec::<T, A>::set_len` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/util/mod.rs:139:2
[INFO] [stdout]     |
[INFO] [stdout] 139 |     vec.set_len(vec_len + additional);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            609 | unsafe fn dos_header(image: &[u8]) -> &IMAGE_DOS_HEADER { unsafe { unsafe {
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe64/pe.rs:610:3
[INFO] [stdout]     |
[INFO] [stdout] 610 |     &*(image.as_ptr() as *const IMAGE_DOS_HEADER)
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/pe64/pe.rs:609:1
[INFO] [stdout]     |
[INFO] [stdout] 609 | unsafe fn dos_header(image: &[u8]) -> &IMAGE_DOS_HEADER {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |                                                                  - the nearest open delimiter
[INFO] [stderr]            610 |     &*(image.as_ptr() as *const IMAGE_DOS_H}EADER)
[INFO] [stderr]                |                                                  - missing open `(` for this delimiter
[INFO] [stderr]            611 | }}
[INFO] [stderr]                |  ^ unexpected closing delimiter
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 2 previous errors
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stdout] warning[E0133]: call to unsafe function `core::slice::<impl [T]>::get_unchecked` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe64/pe.rs:613:2
[INFO] [stdout]     |
[INFO] [stdout] 613 |     image.get_unchecked(..dos_header(image).e_lfanew as usize)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/pe64/pe.rs:612:1
[INFO] [stdout]     |
[INFO] [stdout] 612 | unsafe fn dos_image(image: &[u8]) -> &[u8] {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pe64::pe::dos_header` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe64/pe.rs:613:24
[INFO] [stdout]     |
[INFO] [stdout] 613 |     image.get_unchecked(..dos_header(image).e_lfanew as usize)
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe64/pe.rs:616:3
[INFO] [stdout]     |
[INFO] [stdout] 616 |     &*(image.as_ptr().offset(dos_header(image).e_lfanew as isize) as *const IMAGE_NT_HEADERS)
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/pe64/pe.rs:615:1
[INFO] [stdout]     |
[INFO] [stdout] 615 | unsafe fn nt_headers(image: &[u8]) -> &IMAGE_NT_HEADERS {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::offset` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe64/pe.rs:616:5
[INFO] [stdout]     |
[INFO] [stdout] 616 |     &*(image.as_ptr().offset(dos_header(image).e_lfanew as isize) as *const IMAGE_NT_HEADERS)
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pe64::pe::dos_header` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe64/pe.rs:616:27
[INFO] [stdout]     |
[INFO] [stdout] 616 |     &*(image.as_ptr().offset(dos_header(image).e_lfanew as isize) as *const IMAGE_NT_HEADERS)
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pe64::pe::nt_headers` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe64/pe.rs:619:3
[INFO] [stdout]     |
[INFO] [stdout] 619 |     &nt_headers(image).FileHeader
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/pe64/pe.rs:618:1
[INFO] [stdout]     |
[INFO] [stdout] 618 | unsafe fn file_header(image: &[u8]) -> &IMAGE_FILE_HEADER {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pe64::pe::nt_headers` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe64/pe.rs:622:3
[INFO] [stdout]     |
[INFO] [stdout] 622 |     &nt_headers(image).OptionalHeader
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/pe64/pe.rs:621:1
[INFO] [stdout]     |
[INFO] [stdout] 621 | unsafe fn optional_header(image: &[u8]) -> &IMAGE_OPTIONAL_HEADER {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pe64::pe::optional_header` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe64/pe.rs:625:12
[INFO] [stdout]     |
[INFO] [stdout] 625 |     let opt = optional_header(image);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/pe64/pe.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | unsafe fn data_directory(image: &[u8]) -> &[IMAGE_DATA_DIRECTORY] {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe64/pe.rs:627:2
[INFO] [stdout]     |
[INFO] [stdout] 627 |     slice::from_raw_parts(opt.DataDirectory.as_ptr(), len)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pe64::pe::nt_headers` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe64/pe.rs:630:11
[INFO] [stdout]     |
[INFO] [stdout] 630 |     let nt = nt_headers(image);
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/pe64/pe.rs:629:1
[INFO] [stdout]     |
[INFO] [stdout] 629 | unsafe fn section_headers(image: &[u8]) -> &super::headers::SectionHeaders {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::offset` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe64/pe.rs:631:13
[INFO] [stdout]     |
[INFO] [stdout] 631 | ... = (&nt.OptionalHeader as *const _ as *const u8).offset(nt.FileHeader.SizeOfOptionalHeader as isize) as *const IMAGE_SECTION_HEA...
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe64/pe.rs:632:12
[INFO] [stdout]     |
[INFO] [stdout] 632 |     let raw = slice::from_raw_parts(data, nt.FileHeader.NumberOfSections as usize);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pe64::pe::optional_header` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe64/pe.rs:653:25
[INFO] [stdout]     |
[INFO] [stdout] 653 |         let optional_header = optional_header(image);
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/pe64/pe.rs:651:1
[INFO] [stdout]     |
[INFO] [stdout] 651 | unsafe fn read_section(image: &[u8], va: Va, min_size_of: usize, align_of: usize) -> Result<&[u8]> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pe64::pe::section_headers` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe64/pe.rs:678:12
[INFO] [stdout]     |
[INFO] [stdout] 678 |     for it in section_headers(image) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/pe64/pe.rs:676:1
[INFO] [stdout]     |
[INFO] [stdout] 676 | unsafe fn range_file(image: &[u8], rva: Rva, min_size_of: usize) -> Result<&[u8]> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pe64::pe::range_file` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe64/pe.rs:708:3
[INFO] [stdout]     |
[INFO] [stdout] 708 |         range_file(image, rva, min_size_of)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/pe64/pe.rs:700:1
[INFO] [stdout]     |
[INFO] [stdout] 700 | unsafe fn slice_file(image: &[u8], rva: Rva, min_size_of: usize, align_of: usize) -> Result<&[u8]> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pe64::pe::optional_header` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe64/pe.rs:714:25
[INFO] [stdout]     |
[INFO] [stdout] 714 |         let optional_header = optional_header(image);
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/pe64/pe.rs:712:1
[INFO] [stdout]     |
[INFO] [stdout] 712 | unsafe fn read_file(image: &[u8], va: Va, min_size_of: usize, align_of: usize) -> Result<&[u8]> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pe64::pe::range_file` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe64/pe.rs:729:4
[INFO] [stdout]     |
[INFO] [stdout] 729 |             range_file(image, rva, min_size_of)
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe64/view.rs:65:14
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let dos = &*(base as *const IMAGE_DOS_HEADER);
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/pe64/view.rs:64:2
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub unsafe fn module(base: *const u8) -> PeView<'a> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe64/view.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let nt = &*(base.offset(dos.e_lfanew as isize) as *const IMAGE_NT_HEADERS);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::offset` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe64/view.rs:66:15
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let nt = &*(base.offset(dos.e_lfanew as isize) as *const IMAGE_NT_HEADERS);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe64/view.rs:68:11
[INFO] [stdout]    |
[INFO] [stdout] 68 |             image: slice::from_raw_parts(base, nt.OptionalHeader.SizeOfImage as usize),
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:610:3
[INFO] [stdout]     |
[INFO] [stdout] 610 |     &*(image.as_ptr() as *const IMAGE_DOS_HEADER)
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:609:1
[INFO] [stdout]     |
[INFO] [stdout] 609 | unsafe fn dos_header(image: &[u8]) -> &IMAGE_DOS_HEADER {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `core::slice::<impl [T]>::get_unchecked` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:613:2
[INFO] [stdout]     |
[INFO] [stdout] 613 |     image.get_unchecked(..dos_header(image).e_lfanew as usize)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:612:1
[INFO] [stdout]     |
[INFO] [stdout] 612 | unsafe fn dos_image(image: &[u8]) -> &[u8] {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pe32::pe::dos_header` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:613:24
[INFO] [stdout]     |
[INFO] [stdout] 613 |     image.get_unchecked(..dos_header(image).e_lfanew as usize)
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:616:3
[INFO] [stdout]     |
[INFO] [stdout] 616 |     &*(image.as_ptr().offset(dos_header(image).e_lfanew as isize) as *const IMAGE_NT_HEADERS)
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:615:1
[INFO] [stdout]     |
[INFO] [stdout] 615 | unsafe fn nt_headers(image: &[u8]) -> &IMAGE_NT_HEADERS {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::offset` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:616:5
[INFO] [stdout]     |
[INFO] [stdout] 616 |     &*(image.as_ptr().offset(dos_header(image).e_lfanew as isize) as *const IMAGE_NT_HEADERS)
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pe32::pe::dos_header` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:616:27
[INFO] [stdout]     |
[INFO] [stdout] 616 |     &*(image.as_ptr().offset(dos_header(image).e_lfanew as isize) as *const IMAGE_NT_HEADERS)
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pe32::pe::nt_headers` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:619:3
[INFO] [stdout]     |
[INFO] [stdout] 619 |     &nt_headers(image).FileHeader
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:618:1
[INFO] [stdout]     |
[INFO] [stdout] 618 | unsafe fn file_header(image: &[u8]) -> &IMAGE_FILE_HEADER {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pe32::pe::nt_headers` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:622:3
[INFO] [stdout]     |
[INFO] [stdout] 622 |     &nt_headers(image).OptionalHeader
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:621:1
[INFO] [stdout]     |
[INFO] [stdout] 621 | unsafe fn optional_header(image: &[u8]) -> &IMAGE_OPTIONAL_HEADER {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pe32::pe::optional_header` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:625:12
[INFO] [stdout]     |
[INFO] [stdout] 625 |     let opt = optional_header(image);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:624:1
[INFO] [stdout]     |
[INFO] [stdout] 624 | unsafe fn data_directory(image: &[u8]) -> &[IMAGE_DATA_DIRECTORY] {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:627:2
[INFO] [stdout]     |
[INFO] [stdout] 627 |     slice::from_raw_parts(opt.DataDirectory.as_ptr(), len)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pe32::pe::nt_headers` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:630:11
[INFO] [stdout]     |
[INFO] [stdout] 630 |     let nt = nt_headers(image);
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:629:1
[INFO] [stdout]     |
[INFO] [stdout] 629 | unsafe fn section_headers(image: &[u8]) -> &super::headers::SectionHeaders {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::offset` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:631:13
[INFO] [stdout]     |
[INFO] [stdout] 631 | ... = (&nt.OptionalHeader as *const _ as *const u8).offset(nt.FileHeader.SizeOfOptionalHeader as isize) as *const IMAGE_SECTION_HEA...
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:632:12
[INFO] [stdout]     |
[INFO] [stdout] 632 |     let raw = slice::from_raw_parts(data, nt.FileHeader.NumberOfSections as usize);
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pe32::pe::optional_header` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:653:25
[INFO] [stdout]     |
[INFO] [stdout] 653 |         let optional_header = optional_header(image);
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:651:1
[INFO] [stdout]     |
[INFO] [stdout] 651 | unsafe fn read_section(image: &[u8], va: Va, min_size_of: usize, align_of: usize) -> Result<&[u8]> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pe32::pe::section_headers` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:678:12
[INFO] [stdout]     |
[INFO] [stdout] 678 |     for it in section_headers(image) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:676:1
[INFO] [stdout]     |
[INFO] [stdout] 676 | unsafe fn range_file(image: &[u8], rva: Rva, min_size_of: usize) -> Result<&[u8]> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pe32::pe::range_file` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:708:3
[INFO] [stdout]     |
[INFO] [stdout] 708 |         range_file(image, rva, min_size_of)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:700:1
[INFO] [stdout]     |
[INFO] [stdout] 700 | unsafe fn slice_file(image: &[u8], rva: Rva, min_size_of: usize, align_of: usize) -> Result<&[u8]> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pe32::pe::optional_header` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:714:25
[INFO] [stdout]     |
[INFO] [stdout] 714 |         let optional_header = optional_header(image);
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:712:1
[INFO] [stdout]     |
[INFO] [stdout] 712 | unsafe fn read_file(image: &[u8], va: Va, min_size_of: usize, align_of: usize) -> Result<&[u8]> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pe32::pe::range_file` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/pe32/../pe64/pe.rs:729:4
[INFO] [stdout]     |
[INFO] [stdout] 729 |             range_file(image, rva, min_size_of)
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe32/../pe64/view.rs:65:14
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let dos = &*(base as *const IMAGE_DOS_HEADER);
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/pe32/../pe64/view.rs:64:2
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub unsafe fn module(base: *const u8) -> PeView<'a> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe32/../pe64/view.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let nt = &*(base.offset(dos.e_lfanew as isize) as *const IMAGE_NT_HEADERS);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::offset` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe32/../pe64/view.rs:66:15
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let nt = &*(base.offset(dos.e_lfanew as isize) as *const IMAGE_NT_HEADERS);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe32/../pe64/view.rs:68:11
[INFO] [stdout]    |
[INFO] [stdout] 68 |             image: slice::from_raw_parts(base, nt.OptionalHeader.SizeOfImage as usize),
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl (FnMut(&'a u64) -> (&'a u64, std::result::Result<Import<'a>, error::Error>)) + std::clone::Clone` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/pe64/imports.rs:148:55
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub fn iter(&self) -> iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> (&'a Va, Result<Import<'a>>)> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/pe64/imports.rs:148:14
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub fn iter(&self) -> iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> (&'a Va, Result<Import<'a>>)> {
[INFO] [stdout]     |                 ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]     = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub fn iter(&self) -> iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> (&'a Va, Result<Import<'a>>) + use<'a, P>> {
[INFO] [stdout]     |                                                                                                                     ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl (FnMut(&'a u64) -> std::result::Result<Import<'a>, error::Error>) + std::clone::Clone` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/pe64/imports.rs:228:61
[INFO] [stdout]     |
[INFO] [stdout] 228 |     pub fn int(&self) -> Result<iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> Result<Import<'a>>>> {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/pe64/imports.rs:228:13
[INFO] [stdout]     |
[INFO] [stdout] 228 |     pub fn int(&self) -> Result<iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> Result<Import<'a>>>> {
[INFO] [stdout]     |                ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 228 |     pub fn int(&self) -> Result<iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> Result<Import<'a>> + use<'a, P>>> {
[INFO] [stdout]     |                                                                                                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl (FnMut(&'a image::RUNTIME_FUNCTION) -> pe64::exception::Function<'a, P>) + std::clone::Clone` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> src/pe64/exception.rs:57:51
[INFO] [stdout]    |
[INFO] [stdout] 57 |         -> iter::Map<slice::Iter<'a, RUNTIME_FUNCTION>, impl Clone + FnMut(&'a RUNTIME_FUNCTION) -> Function<'a, P>>
[INFO] [stdout]    |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> src/pe64/exception.rs:56:19
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn functions(&self)
[INFO] [stdout]    |                      ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 57 |         -> iter::Map<slice::Iter<'a, RUNTIME_FUNCTION>, impl Clone + FnMut(&'a RUNTIME_FUNCTION) -> Function<'a, P> + use<'a, P>>
[INFO] [stdout]    |                                                                                                                     ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl (FnMut(&'a u32) -> (&'a u32, std::result::Result<Import<'a>, error::Error>)) + std::clone::Clone` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/pe32/../pe64/imports.rs:148:55
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub fn iter(&self) -> iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> (&'a Va, Result<Import<'a>>)> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/pe32/../pe64/imports.rs:148:14
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub fn iter(&self) -> iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> (&'a Va, Result<Import<'a>>)> {
[INFO] [stdout]     |                 ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub fn iter(&self) -> iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> (&'a Va, Result<Import<'a>>) + use<'a, P>> {
[INFO] [stdout]     |                                                                                                                     ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl (FnMut(&'a u32) -> std::result::Result<Import<'a>, error::Error>) + std::clone::Clone` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/pe32/../pe64/imports.rs:228:61
[INFO] [stdout]     |
[INFO] [stdout] 228 |     pub fn int(&self) -> Result<iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> Result<Import<'a>>>> {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/pe32/../pe64/imports.rs:228:13
[INFO] [stdout]     |
[INFO] [stdout] 228 |     pub fn int(&self) -> Result<iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> Result<Import<'a>>>> {
[INFO] [stdout]     |                ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 228 |     pub fn int(&self) -> Result<iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> Result<Import<'a>> + use<'a, P>>> {
[INFO] [stdout]     |                                                                                                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl (FnMut(&'a image::RUNTIME_FUNCTION) -> pe32::exception::Function<'a, P>) + std::clone::Clone` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> src/pe32/../pe64/exception.rs:57:51
[INFO] [stdout]    |
[INFO] [stdout] 57 |         -> iter::Map<slice::Iter<'a, RUNTIME_FUNCTION>, impl Clone + FnMut(&'a RUNTIME_FUNCTION) -> Function<'a, P>>
[INFO] [stdout]    |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> src/pe32/../pe64/exception.rs:56:19
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn functions(&self)
[INFO] [stdout]    |                      ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 57 |         -> iter::Map<slice::Iter<'a, RUNTIME_FUNCTION>, impl Clone + FnMut(&'a RUNTIME_FUNCTION) -> Function<'a, P> + use<'a, P>>
[INFO] [stdout]    |                                                                                                                     ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl std::clone::Clone + std::iter::Iterator<Item = (&'a u32, std::result::Result<Import<'a>, error::Error>)>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> src/wrap/imports.rs:78:29
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn iter(&self) -> Wrap<impl Clone + Iterator<Item = (&'a u32, Result<pe32::imports::Import<'a>>)>, impl Clone + Iterator<Ite...
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> src/wrap/imports.rs:78:14
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn iter(&self) -> Wrap<impl Clone + Iterator<Item = (&'a u32, Result<pe32::imports::Import<'a>>)>, impl Clone + Iterator<Ite...
[INFO] [stdout]    |                 ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn iter(&self) -> Wrap<impl Clone + Iterator<Item = (&'a u32, Result<pe32::imports::Import<'a>>)> + use<'a, Pe32, Pe64>, impl Clone + Iterator<Item = (&'a u64, Result<pe64::imports::Import<'a>>)>> {
[INFO] [stdout]    |                                                                                                           +++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl std::clone::Clone + std::iter::Iterator<Item = (&'a u64, std::result::Result<Import<'a>, error::Error>)>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> src/wrap/imports.rs:78:105
[INFO] [stdout]    |
[INFO] [stdout] 78 | ...2::imports::Import<'a>>)>, impl Clone + Iterator<Item = (&'a u64, Result<pe64::imports::Import<'a>>)>> {
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> src/wrap/imports.rs:78:14
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn iter(&self) -> Wrap<impl Clone + Iterator<Item = (&'a u32, Result<pe32::imports::Import<'a>>)>, impl Clone + Iterator<Ite...
[INFO] [stdout]    |                 ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn iter(&self) -> Wrap<impl Clone + Iterator<Item = (&'a u32, Result<pe32::imports::Import<'a>>)>, impl Clone + Iterator<Item = (&'a u64, Result<pe64::imports::Import<'a>>)> + use<'a, Pe32, Pe64>> {
[INFO] [stdout]    |                                                                                                                                                                                       +++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl std::clone::Clone + std::iter::Iterator<Item = std::result::Result<Import<'a>, error::Error>>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/wrap/imports.rs:122:30
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub fn int(&self) -> Result<impl Clone + Iterator<Item = Result<Import<'a>>>> {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/wrap/imports.rs:122:13
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub fn int(&self) -> Result<impl Clone + Iterator<Item = Result<Import<'a>>>> {
[INFO] [stdout]     |                ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub fn int(&self) -> Result<impl Clone + Iterator<Item = Result<Import<'a>>> + use<'a, Pe32, Pe64>> {
[INFO] [stdout]     |                                                                                  +++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl (FnMut(&'a image::IMAGE_RESOURCE_DIRECTORY_ENTRY) -> resources::DirectoryEntry<'a>) + std::clone::Clone` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/resources/mod.rs:130:39
[INFO] [stdout]     |
[INFO] [stdout] 130 |     pub fn entries(&self) -> Entries<'a, impl Clone + FnMut(&'a IMAGE_RESOURCE_DIRECTORY_ENTRY) -> DirectoryEntry<'a>> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/resources/mod.rs:130:17
[INFO] [stdout]     |
[INFO] [stdout] 130 |     pub fn entries(&self) -> Entries<'a, impl Clone + FnMut(&'a IMAGE_RESOURCE_DIRECTORY_ENTRY) -> DirectoryEntry<'a>> {
[INFO] [stdout]     |                    ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 130 |     pub fn entries(&self) -> Entries<'a, impl Clone + FnMut(&'a IMAGE_RESOURCE_DIRECTORY_ENTRY) -> DirectoryEntry<'a> + use<'a>> {
[INFO] [stdout]     |                                                                                                                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl (FnMut(&'a image::IMAGE_RESOURCE_DIRECTORY_ENTRY) -> resources::DirectoryEntry<'a>) + std::clone::Clone` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/resources/mod.rs:143:45
[INFO] [stdout]     |
[INFO] [stdout] 143 |     pub fn named_entries(&self) -> Entries<'a, impl Clone + FnMut(&'a IMAGE_RESOURCE_DIRECTORY_ENTRY) -> DirectoryEntry<'a>> {
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/resources/mod.rs:143:23
[INFO] [stdout]     |
[INFO] [stdout] 143 |     pub fn named_entries(&self) -> Entries<'a, impl Clone + FnMut(&'a IMAGE_RESOURCE_DIRECTORY_ENTRY) -> DirectoryEntry<'a>> {
[INFO] [stdout]     |                          ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 143 |     pub fn named_entries(&self) -> Entries<'a, impl Clone + FnMut(&'a IMAGE_RESOURCE_DIRECTORY_ENTRY) -> DirectoryEntry<'a> + use<'a>> {
[INFO] [stdout]     |                                                                                                                             +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl (FnMut(&'a image::IMAGE_RESOURCE_DIRECTORY_ENTRY) -> resources::DirectoryEntry<'a>) + std::clone::Clone` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/resources/mod.rs:157:42
[INFO] [stdout]     |
[INFO] [stdout] 157 |     pub fn id_entries(&self) -> Entries<'a, impl Clone + FnMut(&'a IMAGE_RESOURCE_DIRECTORY_ENTRY) -> DirectoryEntry<'a>> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/resources/mod.rs:157:20
[INFO] [stdout]     |
[INFO] [stdout] 157 |     pub fn id_entries(&self) -> Entries<'a, impl Clone + FnMut(&'a IMAGE_RESOURCE_DIRECTORY_ENTRY) -> DirectoryEntry<'a>> {
[INFO] [stdout]     |                       ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 157 |     pub fn id_entries(&self) -> Entries<'a, impl Clone + FnMut(&'a IMAGE_RESOURCE_DIRECTORY_ENTRY) -> DirectoryEntry<'a> + use<'a>> {
[INFO] [stdout]     |                                                                                                                          +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl std::iter::Iterator<Item = std::result::Result<(Name<'a>, GroupResource<'a>), FindError>> + std::clone::Clone + 'a` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/resources/find.rs:111:25
[INFO] [stdout]     |
[INFO] [stdout] 111 |     pub fn icons(&self) -> impl 'a + Iterator<Item = Result<(Name<'a>, super::group::GroupIcon<'a>), FindError>> + Clone {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/resources/find.rs:111:15
[INFO] [stdout]     |
[INFO] [stdout] 111 |     pub fn icons(&self) -> impl 'a + Iterator<Item = Result<(Name<'a>, super::group::GroupIcon<'a>), FindError>> + Clone {
[INFO] [stdout]     |                  ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 111 |     pub fn icons(&self) -> impl 'a + Iterator<Item = Result<(Name<'a>, super::group::GroupIcon<'a>), FindError>> + Clone + use<'a> {
[INFO] [stdout]     |                                                                                                                          +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl std::iter::Iterator<Item = std::result::Result<(Name<'a>, GroupResource<'a>), FindError>> + std::clone::Clone + 'a` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/resources/find.rs:125:27
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub fn cursors(&self) -> impl 'a + Iterator<Item = Result<(Name<'a>, super::group::GroupCursor<'a>), FindError>> + Clone {
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/resources/find.rs:125:17
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub fn cursors(&self) -> impl 'a + Iterator<Item = Result<(Name<'a>, super::group::GroupCursor<'a>), FindError>> + Clone {
[INFO] [stdout]     |                    ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub fn cursors(&self) -> impl 'a + Iterator<Item = Result<(Name<'a>, super::group::GroupCursor<'a>), FindError>> + Clone + use<'a> {
[INFO] [stdout]     |                                                                                                                              +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/bin/msrtti.rs from 2021 edition to 2024
[INFO] [stderr] error: errors present after applying fixes to crate `pelite`
[INFO] [stderr]  --> src/pe32/../pe64/imports.rs
[INFO] [stderr]  ::: src/pe64/imports.rs
[INFO] [stderr]  ::: src/wrap/imports.rs
[INFO] [stderr]   = cause: error: expected one of `+`, `,`, or `>`, found `t`
[INFO] [stderr]               --> src/pe64/imports.rs:228:109
[INFO] [stderr]                |
[INFO] [stderr]            204 | impl<'a, P: Pe<'a>> Desc<'a, P> {
[INFO] [stderr]                |                                 - while parsing this item list starting here
[INFO] [stderr]            ...
[INFO] [stderr]            228 |     pub fn int(&self) -> Result<iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> Resul + use<'a, P>t<Import<'a>> + use<...
[INFO] [stderr]                |                                                                                                                ^ expected one of `+`, `,`, or `>`
[INFO] [stderr]            ...
[INFO] [stderr]            233 | }
[INFO] [stderr]                | - the item list ends here
[INFO] [stderr]                |
[INFO] [stderr]            help: you might have meant to end the type parameters here
[INFO] [stderr]                |
[INFO] [stderr]            228 |     pub fn int(&self) -> Result<iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> Resul + use<'a, P>>t<Import<'a>> + use<'a, P>>> {
[INFO] [stderr]                |                                                                                                                +
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: expected one of `+`, `,`, or `>`, found `t`
[INFO] [stderr]               --> src/pe32/../pe64/imports.rs:228:109
[INFO] [stderr]                |
[INFO] [stderr]            204 | impl<'a, P: Pe<'a>> Desc<'a, P> {
[INFO] [stderr]                |                                 - while parsing this item list starting here
[INFO] [stderr]            ...
[INFO] [stderr]            228 |     pub fn int(&self) -> Result<iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> Resul + use<'a, P>t<Import<'a>> + use<...
[INFO] [stderr]                |                                                                                                                ^ expected one of `+`, `,`, or `>`
[INFO] [stderr]            ...
[INFO] [stderr]            233 | }
[INFO] [stderr]                | - the item list ends here
[INFO] [stderr]                |
[INFO] [stderr]            help: you might have meant to end the type parameters here
[INFO] [stderr]                |
[INFO] [stderr]            228 |     pub fn int(&self) -> Result<iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> Resul + use<'a, P>>t<Import<'a>> + use<'a, P>>> {
[INFO] [stderr]                |                                                                                                                +
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: duplicate `use<...>` precise capturing syntax
[INFO] [stderr]               --> src/pe64/imports.rs:148:116
[INFO] [stderr]                |
[INFO] [stderr]            148 | ...'a Va) -> (&'a Va, Result<Import<'a>>) + use<'a, P> + use<'a, P>> {
[INFO] [stderr]                |                                             ^^^^^^^^^^   ---------- second `use<...>` here
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: duplicate `use<...>` precise capturing syntax
[INFO] [stderr]               --> src/pe32/../pe64/imports.rs:148:116
[INFO] [stderr]                |
[INFO] [stderr]            148 | ...'a Va) -> (&'a Va, Result<Import<'a>>) + use<'a, P> + use<'a, P>> {
[INFO] [stderr]                |                                             ^^^^^^^^^^   ---------- second `use<...>` here
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0599]: no method named `int` found for reference `&pe32::imports::Desc<'_, Pe32>` in the current scope
[INFO] [stderr]               --> src/wrap/imports.rs:124:41
[INFO] [stderr]                |
[INFO] [stderr]            124 |             Wrap::T32(desc) => Ok(Wrap::T32(desc.int()?).map(Wrap::into)),
[INFO] [stderr]                |                                                  ^^^
[INFO] [stderr]                |
[INFO] [stderr]            help: there is a method `iat` with a similar name
[INFO] [stderr]                |
[INFO] [stderr]            124 -             Wrap::T32(desc) => Ok(Wrap::T32(desc.int()?).map(Wrap::into)),
[INFO] [stderr]            124 +             Wrap::T32(desc) => Ok(Wrap::T32(desc.iat()?).map(Wrap::into)),
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0599]: no method named `int` found for reference `&pe64::imports::Desc<'_, Pe64>` in the current scope
[INFO] [stderr]               --> src/wrap/imports.rs:125:41
[INFO] [stderr]                |
[INFO] [stderr]            125 |             Wrap::T64(desc) => Ok(Wrap::T64(desc.int()?).map(Wrap::into)),
[INFO] [stderr]                |                                                  ^^^
[INFO] [stderr]                |
[INFO] [stderr]            help: there is a method `iat` with a similar name
[INFO] [stderr]                |
[INFO] [stderr]            125 -             Wrap::T64(desc) => Ok(Wrap::T64(desc.int()?).map(Wrap::into)),
[INFO] [stderr]            125 +             Wrap::T64(desc) => Ok(Wrap::T64(desc.iat()?).map(Wrap::into)),
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0599]: no method named `int` found for reference `&pe64::imports::Desc<'a, P>` in the current scope
[INFO] [stderr]               --> src/pe64/imports.rs:239:50
[INFO] [stderr]                |
[INFO] [stderr]            239 |             .field("int.len", &format_args!("{:?}", &self.int().map(|iter| iter.len())))
[INFO] [stderr]                |                                                           ^^^
[INFO] [stderr]                |
[INFO] [stderr]            help: there is a method `iat` with a similar name
[INFO] [stderr]                |
[INFO] [stderr]            239 -             .field("int.len", &format_args!("{:?}", &self.int().map(|iter| iter.len())))
[INFO] [stderr]            239 +             .field("int.len", &format_args!("{:?}", &self.iat().map(|iter| iter.len())))
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0599]: no method named `int` found for struct `pe64::imports::Desc<'a, P>` in the current scope
[INFO] [stderr]               --> src/pe64/imports.rs:304:17
[INFO] [stderr]                |
[INFO] [stderr]            200 | pub struct Desc<'a, P> {
[INFO] [stderr]                | ---------------------- method `int` not found for this struct
[INFO] [stderr]            ...
[INFO] [stderr]            304 |         for _ in desc.int() {}
[INFO] [stderr]                |                       ^^^
[INFO] [stderr]                |
[INFO] [stderr]            help: there is a method `iat` with a similar name
[INFO] [stderr]                |
[INFO] [stderr]            304 -         for _ in desc.int() {}
[INFO] [stderr]            304 +         for _ in desc.iat() {}
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0599]: no method named `int` found for reference `&pe32::imports::Desc<'a, P>` in the current scope
[INFO] [stderr]               --> src/pe32/../pe64/imports.rs:239:50
[INFO] [stderr]                |
[INFO] [stderr]            239 |             .field("int.len", &format_args!("{:?}", &self.int().map(|iter| iter.len())))
[INFO] [stderr]                |                                                           ^^^
[INFO] [stderr]                |
[INFO] [stderr]            help: there is a method `iat` with a similar name
[INFO] [stderr]                |
[INFO] [stderr]            239 -             .field("int.len", &format_args!("{:?}", &self.int().map(|iter| iter.len())))
[INFO] [stderr]            239 +             .field("int.len", &format_args!("{:?}", &self.iat().map(|iter| iter.len())))
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error[E0599]: no method named `int` found for struct `pe32::imports::Desc<'a, P>` in the current scope
[INFO] [stderr]               --> src/pe32/../pe64/imports.rs:304:17
[INFO] [stderr]                |
[INFO] [stderr]            200 | pub struct Desc<'a, P> {
[INFO] [stderr]                | ---------------------- method `int` not found for this struct
[INFO] [stderr]            ...
[INFO] [stderr]            304 |         for _ in desc.int() {}
[INFO] [stderr]                |                       ^^^
[INFO] [stderr]                |
[INFO] [stderr]            help: there is a method `iat` with a similar name
[INFO] [stderr]                |
[INFO] [stderr]            304 -         for _ in desc.int() {}
[INFO] [stderr]            304 +         for _ in desc.iat() {}
[INFO] [stderr]                |
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 10 previous errors
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            For more information about this error, try `rustc --explain E0599`.
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition
[INFO] [stdout]   --> src/stringify.rs:17:26
[INFO] [stdout]    |
[INFO] [stdout] 17 |         $($name:ident => $desc:expr,)*
[INFO] [stdout]    |                                ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/macro-fragment-specifiers.html>
[INFO] [stdout]    = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier
[INFO] [stdout]    |
[INFO] [stdout] 17 |         $($name:ident => $desc:expr_2021,)*
[INFO] [stdout]    |                                    +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition
[INFO] [stdout]   --> src/stringify.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 |         $($index:expr, $name:expr => $desc:expr,)*
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/macro-fragment-specifiers.html>
[INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier
[INFO] [stdout]    |
[INFO] [stdout] 54 |         $($index:expr_2021, $name:expr => $desc:expr,)*
[INFO] [stdout]    |                      +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition
[INFO] [stdout]   --> src/stringify.rs:54:24
[INFO] [stdout]    |
[INFO] [stdout] 54 |         $($index:expr, $name:expr => $desc:expr,)*
[INFO] [stdout]    |                              ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/macro-fragment-specifiers.html>
[INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier
[INFO] [stdout]    |
[INFO] [stdout] 54 |         $($index:expr, $name:expr_2021 => $desc:expr,)*
[INFO] [stdout]    |                                  +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition
[INFO] [stdout]   --> src/stringify.rs:54:38
[INFO] [stdout]    |
[INFO] [stdout] 54 |         $($index:expr, $name:expr => $desc:expr,)*
[INFO] [stdout]    |                                            ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/macro-fragment-specifiers.html>
[INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier
[INFO] [stdout]    |
[INFO] [stdout] 54 |         $($index:expr, $name:expr => $desc:expr_2021,)*
[INFO] [stdout]    |                                                +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition
[INFO] [stdout]   --> src/tests.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 |     ($image:expr, $module:ident) => {
[INFO] [stdout]    |             ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/macro-fragment-specifiers.html>
[INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier
[INFO] [stdout]    |
[INFO] [stdout] 11 |     ($image:expr_2021, $module:ident) => {
[INFO] [stdout]    |                 +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::intrinsics::transmute` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/c_str.rs:49:3
[INFO] [stdout]    |
[INFO] [stdout] 49 |         mem::transmute(bytes)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/util/c_str.rs:48:2
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub unsafe fn from_bytes_unchecked(bytes: &[u8]) -> &CStr {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: `--force-warn unsafe-op-in-unsafe-fn` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::intrinsics::transmute` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/wide_str.rs:43:3
[INFO] [stdout]    |
[INFO] [stdout] 43 |         mem::transmute(words)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/util/wide_str.rs:42:2
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub unsafe fn from_words_unchecked(words: &[u16]) -> &WideStr {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/wide_str.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let len = *p as usize + 1;
[INFO] [stdout]    |                   ^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/util/wide_str.rs:54:2
[INFO] [stdout]    |
[INFO] [stdout] 54 |     unsafe fn from_bytes(bytes: &[u8]) -> Option<&WideStr> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `util::wide_str::WideStr::from_words_unchecked` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/wide_str.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 |         Some(WideStr::from_words_unchecked(slice::from_raw_parts(p, len)))
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/wide_str.rs:60:38
[INFO] [stdout]    |
[INFO] [stdout] 60 |         Some(WideStr::from_words_unchecked(slice::from_raw_parts(p, len)))
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/util/mod.rs:138:4
[INFO] [stdout]     |
[INFO] [stdout] 138 |     f(std::slice::from_raw_parts_mut(vec.as_mut_ptr().offset(vec_len as isize), additional));
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/util/mod.rs:133:1
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub(crate) unsafe fn extend_in_place<'a, T, F: FnMut(&'a mut [T])>(vec: &'a mut Vec<T>, additional: usize, mut f: F) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::offset` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/util/mod.rs:138:35
[INFO] [stdout]     |
[INFO] [stdout] 138 |     f(std::slice::from_raw_parts_mut(vec.as_mut_ptr().offset(vec_len as isize), additional));
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::vec::Vec::<T, A>::set_len` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/util/mod.rs:139:2
[INFO] [stdout]     |
[INFO] [stdout] 139 |     vec.set_len(vec_len + additional);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe64/view.rs:65:14
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let dos = &*(base as *const IMAGE_DOS_HEADER);
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/pe64/view.rs:64:2
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub unsafe fn module(base: *const u8) -> PeView<'a> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe64/view.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let nt = &*(base.offset(dos.e_lfanew as isize) as *const IMAGE_NT_HEADERS);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::offset` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe64/view.rs:66:15
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let nt = &*(base.offset(dos.e_lfanew as isize) as *const IMAGE_NT_HEADERS);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe64/view.rs:68:11
[INFO] [stdout]    |
[INFO] [stdout] 68 |             image: slice::from_raw_parts(base, nt.OptionalHeader.SizeOfImage as usize),
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe32/../pe64/view.rs:65:14
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let dos = &*(base as *const IMAGE_DOS_HEADER);
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/pe32/../pe64/view.rs:64:2
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub unsafe fn module(base: *const u8) -> PeView<'a> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe32/../pe64/view.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let nt = &*(base.offset(dos.e_lfanew as isize) as *const IMAGE_NT_HEADERS);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::offset` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe32/../pe64/view.rs:66:15
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let nt = &*(base.offset(dos.e_lfanew as isize) as *const IMAGE_NT_HEADERS);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe32/../pe64/view.rs:68:11
[INFO] [stdout]    |
[INFO] [stdout] 68 |             image: slice::from_raw_parts(base, nt.OptionalHeader.SizeOfImage as usize),
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl (FnMut(&'a u64) -> (&'a u64, std::result::Result<Import<'a>, error::Error>)) + std::clone::Clone` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/pe64/imports.rs:148:55
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub fn iter(&self) -> iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> (&'a Va, Result<Import<'a>>)> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/pe64/imports.rs:148:14
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub fn iter(&self) -> iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> (&'a Va, Result<Import<'a>>)> {
[INFO] [stdout]     |                 ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]     = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub fn iter(&self) -> iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> (&'a Va, Result<Import<'a>>) + use<'a, P>> {
[INFO] [stdout]     |                                                                                                                     ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl (FnMut(&'a u64) -> std::result::Result<Import<'a>, error::Error>) + std::clone::Clone` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/pe64/imports.rs:228:61
[INFO] [stdout]     |
[INFO] [stdout] 228 |     pub fn int(&self) -> Result<iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> Result<Import<'a>>>> {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/pe64/imports.rs:228:13
[INFO] [stdout]     |
[INFO] [stdout] 228 |     pub fn int(&self) -> Result<iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> Result<Import<'a>>>> {
[INFO] [stdout]     |                ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 228 |     pub fn int(&self) -> Result<iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> Result<Import<'a>> + use<'a, P>>> {
[INFO] [stdout]     |                                                                                                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl (FnMut(&'a u32) -> (&'a u32, std::result::Result<Import<'a>, error::Error>)) + std::clone::Clone` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/pe32/../pe64/imports.rs:148:55
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub fn iter(&self) -> iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> (&'a Va, Result<Import<'a>>)> {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/pe32/../pe64/imports.rs:148:14
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub fn iter(&self) -> iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> (&'a Va, Result<Import<'a>>)> {
[INFO] [stdout]     |                 ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub fn iter(&self) -> iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> (&'a Va, Result<Import<'a>>) + use<'a, P>> {
[INFO] [stdout]     |                                                                                                                     ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl (FnMut(&'a u32) -> std::result::Result<Import<'a>, error::Error>) + std::clone::Clone` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/pe32/../pe64/imports.rs:228:61
[INFO] [stdout]     |
[INFO] [stdout] 228 |     pub fn int(&self) -> Result<iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> Result<Import<'a>>>> {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/pe32/../pe64/imports.rs:228:13
[INFO] [stdout]     |
[INFO] [stdout] 228 |     pub fn int(&self) -> Result<iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> Result<Import<'a>>>> {
[INFO] [stdout]     |                ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 228 |     pub fn int(&self) -> Result<iter::Map<slice::Iter<'a, Va>, impl Clone + FnMut(&'a Va) -> Result<Import<'a>> + use<'a, P>>> {
[INFO] [stdout]     |                                                                                                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl std::clone::Clone + std::iter::Iterator<Item = (&'a u32, std::result::Result<Import<'a>, error::Error>)>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> src/wrap/imports.rs:78:29
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn iter(&self) -> Wrap<impl Clone + Iterator<Item = (&'a u32, Result<pe32::imports::Import<'a>>)>, impl Clone + Iterator<Ite...
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> src/wrap/imports.rs:78:14
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn iter(&self) -> Wrap<impl Clone + Iterator<Item = (&'a u32, Result<pe32::imports::Import<'a>>)>, impl Clone + Iterator<Ite...
[INFO] [stdout]    |                 ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn iter(&self) -> Wrap<impl Clone + Iterator<Item = (&'a u32, Result<pe32::imports::Import<'a>>)> + use<'a, Pe32, Pe64>, impl Clone + Iterator<Item = (&'a u64, Result<pe64::imports::Import<'a>>)>> {
[INFO] [stdout]    |                                                                                                           +++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl std::clone::Clone + std::iter::Iterator<Item = (&'a u64, std::result::Result<Import<'a>, error::Error>)>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> src/wrap/imports.rs:78:105
[INFO] [stdout]    |
[INFO] [stdout] 78 | ...2::imports::Import<'a>>)>, impl Clone + Iterator<Item = (&'a u64, Result<pe64::imports::Import<'a>>)>> {
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> src/wrap/imports.rs:78:14
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn iter(&self) -> Wrap<impl Clone + Iterator<Item = (&'a u32, Result<pe32::imports::Import<'a>>)>, impl Clone + Iterator<Ite...
[INFO] [stdout]    |                 ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn iter(&self) -> Wrap<impl Clone + Iterator<Item = (&'a u32, Result<pe32::imports::Import<'a>>)>, impl Clone + Iterator<Item = (&'a u64, Result<pe64::imports::Import<'a>>)> + use<'a, Pe32, Pe64>> {
[INFO] [stdout]    |                                                                                                                                                                                       +++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl std::clone::Clone + std::iter::Iterator<Item = std::result::Result<Import<'a>, error::Error>>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/wrap/imports.rs:122:30
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub fn int(&self) -> Result<impl Clone + Iterator<Item = Result<Import<'a>>>> {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/wrap/imports.rs:122:13
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub fn int(&self) -> Result<impl Clone + Iterator<Item = Result<Import<'a>>>> {
[INFO] [stdout]     |                ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub fn int(&self) -> Result<impl Clone + Iterator<Item = Result<Import<'a>>> + use<'a, Pe32, Pe64>> {
[INFO] [stdout]     |                                                                                  +++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl (FnMut(&'a image::IMAGE_RESOURCE_DIRECTORY_ENTRY) -> resources::DirectoryEntry<'a>) + std::clone::Clone` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/resources/mod.rs:130:39
[INFO] [stdout]     |
[INFO] [stdout] 130 |     pub fn entries(&self) -> Entries<'a, impl Clone + FnMut(&'a IMAGE_RESOURCE_DIRECTORY_ENTRY) -> DirectoryEntry<'a>> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/resources/mod.rs:130:17
[INFO] [stdout]     |
[INFO] [stdout] 130 |     pub fn entries(&self) -> Entries<'a, impl Clone + FnMut(&'a IMAGE_RESOURCE_DIRECTORY_ENTRY) -> DirectoryEntry<'a>> {
[INFO] [stdout]     |                    ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 130 |     pub fn entries(&self) -> Entries<'a, impl Clone + FnMut(&'a IMAGE_RESOURCE_DIRECTORY_ENTRY) -> DirectoryEntry<'a> + use<'a>> {
[INFO] [stdout]     |                                                                                                                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl (FnMut(&'a image::IMAGE_RESOURCE_DIRECTORY_ENTRY) -> resources::DirectoryEntry<'a>) + std::clone::Clone` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/resources/mod.rs:143:45
[INFO] [stdout]     |
[INFO] [stdout] 143 |     pub fn named_entries(&self) -> Entries<'a, impl Clone + FnMut(&'a IMAGE_RESOURCE_DIRECTORY_ENTRY) -> DirectoryEntry<'a>> {
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/resources/mod.rs:143:23
[INFO] [stdout]     |
[INFO] [stdout] 143 |     pub fn named_entries(&self) -> Entries<'a, impl Clone + FnMut(&'a IMAGE_RESOURCE_DIRECTORY_ENTRY) -> DirectoryEntry<'a>> {
[INFO] [stdout]     |                          ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 143 |     pub fn named_entries(&self) -> Entries<'a, impl Clone + FnMut(&'a IMAGE_RESOURCE_DIRECTORY_ENTRY) -> DirectoryEntry<'a> + use<'a>> {
[INFO] [stdout]     |                                                                                                                             +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl (FnMut(&'a image::IMAGE_RESOURCE_DIRECTORY_ENTRY) -> resources::DirectoryEntry<'a>) + std::clone::Clone` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/resources/mod.rs:157:42
[INFO] [stdout]     |
[INFO] [stdout] 157 |     pub fn id_entries(&self) -> Entries<'a, impl Clone + FnMut(&'a IMAGE_RESOURCE_DIRECTORY_ENTRY) -> DirectoryEntry<'a>> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/resources/mod.rs:157:20
[INFO] [stdout]     |
[INFO] [stdout] 157 |     pub fn id_entries(&self) -> Entries<'a, impl Clone + FnMut(&'a IMAGE_RESOURCE_DIRECTORY_ENTRY) -> DirectoryEntry<'a>> {
[INFO] [stdout]     |                       ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 157 |     pub fn id_entries(&self) -> Entries<'a, impl Clone + FnMut(&'a IMAGE_RESOURCE_DIRECTORY_ENTRY) -> DirectoryEntry<'a> + use<'a>> {
[INFO] [stdout]     |                                                                                                                          +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl std::iter::Iterator<Item = std::result::Result<(Name<'a>, GroupResource<'a>), FindError>> + std::clone::Clone + 'a` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/resources/find.rs:111:25
[INFO] [stdout]     |
[INFO] [stdout] 111 |     pub fn icons(&self) -> impl 'a + Iterator<Item = Result<(Name<'a>, super::group::GroupIcon<'a>), FindError>> + Clone {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/resources/find.rs:111:15
[INFO] [stdout]     |
[INFO] [stdout] 111 |     pub fn icons(&self) -> impl 'a + Iterator<Item = Result<(Name<'a>, super::group::GroupIcon<'a>), FindError>> + Clone {
[INFO] [stdout]     |                  ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 111 |     pub fn icons(&self) -> impl 'a + Iterator<Item = Result<(Name<'a>, super::group::GroupIcon<'a>), FindError>> + Clone + use<'a> {
[INFO] [stdout]     |                                                                                                                          +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl std::iter::Iterator<Item = std::result::Result<(Name<'a>, GroupResource<'a>), FindError>> + std::clone::Clone + 'a` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/resources/find.rs:125:27
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub fn cursors(&self) -> impl 'a + Iterator<Item = Result<(Name<'a>, super::group::GroupCursor<'a>), FindError>> + Clone {
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/resources/find.rs:125:17
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub fn cursors(&self) -> impl 'a + Iterator<Item = Result<(Name<'a>, super::group::GroupCursor<'a>), FindError>> + Clone {
[INFO] [stdout]     |                    ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub fn cursors(&self) -> impl 'a + Iterator<Item = Result<(Name<'a>, super::group::GroupCursor<'a>), FindError>> + Clone + use<'a> {
[INFO] [stdout]     |                                                                                                                              +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/bin/module-def.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/patterns.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating examples/markovbin.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed examples/markovbin.rs (2 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> examples/markovbin.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |         match pelite::FileMap::open(&file) {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |               |
[INFO] [stdout]    |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 39 |             Ok(map) => {
[INFO] [stdout]    |                ---
[INFO] [stdout]    |                |
[INFO] [stdout]    |                `map` calls a custom destructor
[INFO] [stdout]    |                `map` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 62 |     }
[INFO] [stdout]    |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]   --> src/mmap/unix.rs:53:1
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl Drop for FileMap {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `map` invokes this custom destructor
[INFO] [stdout]   --> src/mmap/unix.rs:53:1
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl Drop for FileMap {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/bin/pedump.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating examples/imphash.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/edges.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating examples/readme.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating examples/extract-icons.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/bin/strings.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating examples/apisetschema/main.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed examples/apisetschema/win10.rs (2 fixes)
[INFO] [stderr]    Migrating examples/tf2/main.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/tiny.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/bin/findsig.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating examples/version_info.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating examples/csgo/main.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/demo64.rs from 2021 edition to 2024
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.48s
[INFO] [stderr] crater-edition-check: pelite v0.10.0 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]     Checking pelite v0.10.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0515]: cannot return value referencing function parameter `icons`
[INFO] [stdout]    --> src/resources/find.rs:116:43
[INFO] [stdout]     |
[INFO] [stdout] 116 |           icons.into_iter().flat_map(move |icons| icons.entries().map(move |de| {
[INFO] [stdout]     |                                                   ^----
[INFO] [stdout]     |                                                   |
[INFO] [stdout]     |  _________________________________________________`icons` is borrowed here
[INFO] [stdout]     | |
[INFO] [stdout] 117 | |             let name = de.name()?;
[INFO] [stdout] 118 | |             // A lot of assumptions being made here...
[INFO] [stdout] 119 | |             let bytes = de.entry()?.dir().ok_or(FindError::UnDataEntry)?.first_data()?.bytes()?;
[INFO] [stdout] 120 | |             let group_icon = super::group::GroupIcon::new(resources, bytes)?;
[INFO] [stdout] 121 | |             Ok((name, group_icon))
[INFO] [stdout] 122 | |         }))
[INFO] [stdout]     | |__________^ returns a value referencing data owned by the current function
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/resources/find.rs:116:43
[INFO] [stdout]     |
[INFO] [stdout] 116 |         icons.into_iter().flat_map(move |icons| icons.entries().map(move |de| {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: use `.collect()` to allocate the iterator
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    --> src/resources/mod.rs:130:115
[INFO] [stdout]     |
[INFO] [stdout] 130 |     pub fn entries(&self) -> Entries<'a, impl Clone + FnMut(&'a IMAGE_RESOURCE_DIRECTORY_ENTRY) -> DirectoryEntry<'a> + use<'a>> {
[INFO] [stdout]     |                                                                                                                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0515]: cannot return value referencing function parameter `cursors`
[INFO] [stdout]    --> src/resources/find.rs:130:47
[INFO] [stdout]     |
[INFO] [stdout] 130 |           cursors.into_iter().flat_map(move |cursors| cursors.entries().map(move |de| {
[INFO] [stdout]     |                                                       ^------
[INFO] [stdout]     |                                                       |
[INFO] [stdout]     |  _____________________________________________________`cursors` is borrowed here
[INFO] [stdout]     | |
[INFO] [stdout] 131 | |             let name = de.name()?;
[INFO] [stdout] 132 | |             // A lot of assumptions being made here...
[INFO] [stdout] 133 | |             let bytes = de.entry()?.dir().ok_or(FindError::UnDataEntry)?.first_data()?.bytes()?;
[INFO] [stdout] 134 | |             let group_cursor = super::group::GroupCursor::new(resources, bytes)?;
[INFO] [stdout] 135 | |             Ok((name, group_cursor))
[INFO] [stdout] 136 | |         }))
[INFO] [stdout]     | |__________^ returns a value referencing data owned by the current function
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/resources/find.rs:130:47
[INFO] [stdout]     |
[INFO] [stdout] 130 |         cursors.into_iter().flat_map(move |cursors| cursors.entries().map(move |de| {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: use `.collect()` to allocate the iterator
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    --> src/resources/mod.rs:130:115
[INFO] [stdout]     |
[INFO] [stdout] 130 |     pub fn entries(&self) -> Entries<'a, impl Clone + FnMut(&'a IMAGE_RESOURCE_DIRECTORY_ENTRY) -> DirectoryEntry<'a> + use<'a>> {
[INFO] [stdout]     |                                                                                                                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0515]: cannot return value referencing function parameter `icons`
[INFO] [stdout]    --> src/resources/find.rs:116:43
[INFO] [stdout]     |
[INFO] [stdout] 116 |           icons.into_iter().flat_map(move |icons| icons.entries().map(move |de| {
[INFO] [stdout]     |                                                   ^----
[INFO] [stdout]     |                                                   |
[INFO] [stdout]     |  _________________________________________________`icons` is borrowed here
[INFO] [stdout]     | |
[INFO] [stdout] 117 | |             let name = de.name()?;
[INFO] [stdout] 118 | |             // A lot of assumptions being made here...
[INFO] [stdout] 119 | |             let bytes = de.entry()?.dir().ok_or(FindError::UnDataEntry)?.first_data()?.bytes()?;
[INFO] [stdout] 120 | |             let group_icon = super::group::GroupIcon::new(resources, bytes)?;
[INFO] [stdout] 121 | |             Ok((name, group_icon))
[INFO] [stdout] 122 | |         }))
[INFO] [stdout]     | |__________^ returns a value referencing data owned by the current function
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/resources/find.rs:116:43
[INFO] [stdout]     |
[INFO] [stdout] 116 |         icons.into_iter().flat_map(move |icons| icons.entries().map(move |de| {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: use `.collect()` to allocate the iterator
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    --> src/resources/mod.rs:130:115
[INFO] [stdout]     |
[INFO] [stdout] 130 |     pub fn entries(&self) -> Entries<'a, impl Clone + FnMut(&'a IMAGE_RESOURCE_DIRECTORY_ENTRY) -> DirectoryEntry<'a> + use<'a>> {
[INFO] [stdout]     |                                                                                                                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0515]: cannot return value referencing function parameter `cursors`
[INFO] [stdout]    --> src/resources/find.rs:130:47
[INFO] [stdout]     |
[INFO] [stdout] 130 |           cursors.into_iter().flat_map(move |cursors| cursors.entries().map(move |de| {
[INFO] [stdout]     |                                                       ^------
[INFO] [stdout]     |                                                       |
[INFO] [stdout]     |  _____________________________________________________`cursors` is borrowed here
[INFO] [stdout]     | |
[INFO] [stdout] 131 | |             let name = de.name()?;
[INFO] [stdout] 132 | |             // A lot of assumptions being made here...
[INFO] [stdout] 133 | |             let bytes = de.entry()?.dir().ok_or(FindError::UnDataEntry)?.first_data()?.bytes()?;
[INFO] [stdout] 134 | |             let group_cursor = super::group::GroupCursor::new(resources, bytes)?;
[INFO] [stdout] 135 | |             Ok((name, group_cursor))
[INFO] [stdout] 136 | |         }))
[INFO] [stdout]     | |__________^ returns a value referencing data owned by the current function
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/resources/find.rs:130:47
[INFO] [stdout]     |
[INFO] [stdout] 130 |         cursors.into_iter().flat_map(move |cursors| cursors.entries().map(move |de| {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: use `.collect()` to allocate the iterator
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    --> src/resources/mod.rs:130:115
[INFO] [stdout]     |
[INFO] [stdout] 130 |     pub fn entries(&self) -> Entries<'a, impl Clone + FnMut(&'a IMAGE_RESOURCE_DIRECTORY_ENTRY) -> DirectoryEntry<'a> + use<'a>> {
[INFO] [stdout]     |                                                                                                                       +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::intrinsics::transmute` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/c_str.rs:49:3
[INFO] [stdout]    |
[INFO] [stdout] 49 |         mem::transmute(bytes)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/util/c_str.rs:48:2
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub unsafe fn from_bytes_unchecked(bytes: &[u8]) -> &CStr {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::intrinsics::transmute` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/wide_str.rs:43:3
[INFO] [stdout]    |
[INFO] [stdout] 43 |         mem::transmute(words)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/util/wide_str.rs:42:2
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub unsafe fn from_words_unchecked(words: &[u16]) -> &WideStr {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/wide_str.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let len = *p as usize + 1;
[INFO] [stdout]    |                   ^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/util/wide_str.rs:54:2
[INFO] [stdout]    |
[INFO] [stdout] 54 |     unsafe fn from_bytes(bytes: &[u8]) -> Option<&WideStr> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `util::wide_str::WideStr::from_words_unchecked` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/wide_str.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 |         Some(WideStr::from_words_unchecked(slice::from_raw_parts(p, len)))
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/wide_str.rs:60:38
[INFO] [stdout]    |
[INFO] [stdout] 60 |         Some(WideStr::from_words_unchecked(slice::from_raw_parts(p, len)))
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/util/mod.rs:138:4
[INFO] [stdout]     |
[INFO] [stdout] 138 |     f(std::slice::from_raw_parts_mut(vec.as_mut_ptr().offset(vec_len as isize), additional));
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/util/mod.rs:133:1
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub(crate) unsafe fn extend_in_place<'a, T, F: FnMut(&'a mut [T])>(vec: &'a mut Vec<T>, additional: usize, mut f: F) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::offset` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/util/mod.rs:138:35
[INFO] [stdout]     |
[INFO] [stdout] 138 |     f(std::slice::from_raw_parts_mut(vec.as_mut_ptr().offset(vec_len as isize), additional));
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::vec::Vec::<T, A>::set_len` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/util/mod.rs:139:2
[INFO] [stdout]     |
[INFO] [stdout] 139 |     vec.set_len(vec_len + additional);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe64/view.rs:65:14
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let dos = &*(base as *const IMAGE_DOS_HEADER);
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/pe64/view.rs:64:2
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub unsafe fn module(base: *const u8) -> PeView<'a> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe64/view.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let nt = &*(base.offset(dos.e_lfanew as isize) as *const IMAGE_NT_HEADERS);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::offset` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe64/view.rs:66:15
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let nt = &*(base.offset(dos.e_lfanew as isize) as *const IMAGE_NT_HEADERS);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe64/view.rs:68:11
[INFO] [stdout]    |
[INFO] [stdout] 68 |             image: slice::from_raw_parts(base, nt.OptionalHeader.SizeOfImage as usize),
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::intrinsics::transmute` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/c_str.rs:49:3
[INFO] [stdout]    |
[INFO] [stdout] 49 |         mem::transmute(bytes)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/util/c_str.rs:48:2
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub unsafe fn from_bytes_unchecked(bytes: &[u8]) -> &CStr {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::intrinsics::transmute` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/wide_str.rs:43:3
[INFO] [stdout]    |
[INFO] [stdout] 43 |         mem::transmute(words)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/util/wide_str.rs:42:2
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub unsafe fn from_words_unchecked(words: &[u16]) -> &WideStr {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/wide_str.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let len = *p as usize + 1;
[INFO] [stdout]    |                   ^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/util/wide_str.rs:54:2
[INFO] [stdout]    |
[INFO] [stdout] 54 |     unsafe fn from_bytes(bytes: &[u8]) -> Option<&WideStr> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `util::wide_str::WideStr::from_words_unchecked` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/wide_str.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 |         Some(WideStr::from_words_unchecked(slice::from_raw_parts(p, len)))
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/util/wide_str.rs:60:38
[INFO] [stdout]    |
[INFO] [stdout] 60 |         Some(WideStr::from_words_unchecked(slice::from_raw_parts(p, len)))
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/util/mod.rs:138:4
[INFO] [stdout]     |
[INFO] [stdout] 138 |     f(std::slice::from_raw_parts_mut(vec.as_mut_ptr().offset(vec_len as isize), additional));
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/util/mod.rs:133:1
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub(crate) unsafe fn extend_in_place<'a, T, F: FnMut(&'a mut [T])>(vec: &'a mut Vec<T>, additional: usize, mut f: F) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::offset` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/util/mod.rs:138:35
[INFO] [stdout]     |
[INFO] [stdout] 138 |     f(std::slice::from_raw_parts_mut(vec.as_mut_ptr().offset(vec_len as isize), additional));
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::vec::Vec::<T, A>::set_len` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/util/mod.rs:139:2
[INFO] [stdout]     |
[INFO] [stdout] 139 |     vec.set_len(vec_len + additional);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe32/../pe64/view.rs:65:14
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let dos = &*(base as *const IMAGE_DOS_HEADER);
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/pe32/../pe64/view.rs:64:2
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub unsafe fn module(base: *const u8) -> PeView<'a> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe32/../pe64/view.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let nt = &*(base.offset(dos.e_lfanew as isize) as *const IMAGE_NT_HEADERS);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::offset` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe32/../pe64/view.rs:66:15
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let nt = &*(base.offset(dos.e_lfanew as isize) as *const IMAGE_NT_HEADERS);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe32/../pe64/view.rs:68:11
[INFO] [stdout]    |
[INFO] [stdout] 68 |             image: slice::from_raw_parts(base, nt.OptionalHeader.SizeOfImage as usize),
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe64/view.rs:65:14
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let dos = &*(base as *const IMAGE_DOS_HEADER);
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/pe64/view.rs:64:2
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub unsafe fn module(base: *const u8) -> PeView<'a> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe64/view.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let nt = &*(base.offset(dos.e_lfanew as isize) as *const IMAGE_NT_HEADERS);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::offset` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe64/view.rs:66:15
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let nt = &*(base.offset(dos.e_lfanew as isize) as *const IMAGE_NT_HEADERS);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe64/view.rs:68:11
[INFO] [stdout]    |
[INFO] [stdout] 68 |             image: slice::from_raw_parts(base, nt.OptionalHeader.SizeOfImage as usize),
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe32/../pe64/view.rs:65:14
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let dos = &*(base as *const IMAGE_DOS_HEADER);
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/pe32/../pe64/view.rs:64:2
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub unsafe fn module(base: *const u8) -> PeView<'a> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe32/../pe64/view.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let nt = &*(base.offset(dos.e_lfanew as isize) as *const IMAGE_NT_HEADERS);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout]    |
[INFO] [stdout]    = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::offset` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe32/../pe64/view.rs:66:15
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let nt = &*(base.offset(dos.e_lfanew as isize) as *const IMAGE_NT_HEADERS);
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/pe32/../pe64/view.rs:68:11
[INFO] [stdout]    |
[INFO] [stdout] 68 |             image: slice::from_raw_parts(base, nt.OptionalHeader.SizeOfImage as usize),
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0133, E0515.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `pelite` (lib) due to 2 previous errors; 16 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] Some errors have detailed explanations: E0133, E0515.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `pelite` (lib test) due to 2 previous errors; 16 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "8e60af36625d7b28cc2cd5dbb1bbea5fc466af434daba24b50af7d86ad780a62", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8e60af36625d7b28cc2cd5dbb1bbea5fc466af434daba24b50af7d86ad780a62", kill_on_drop: false }`
[INFO] [stdout] 8e60af36625d7b28cc2cd5dbb1bbea5fc466af434daba24b50af7d86ad780a62
